package com.sky.chapter3.interrupt;

import java.util.concurrent.TimeUnit;

/**
 * @author : wushikai
 * <p>
 * date : 2022-07-05
 * 如何使用中断标识停止线程？ 在需要中断的线程中不断监听中断状态，一旦发生中断，就执行相应的中断处理业务逻辑
 *
 */
public class InterruptDemo {


    private static volatile boolean isStop = false; //通过一个volatile变量实现
//    private static  boolean isStop = false;

    public static void main(String[] args) {

        new Thread(() -> {
            while (true) {
                if (isStop) {
                    System.out.println(Thread.currentThread().getName() + "线程------isStop = true,自己退出了");
                    break;
                }
                System.out.println("-------hello interrupt");
            }
        }, "t1").start();

        //暂停几秒钟线程
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        isStop = true;
    }
}
